With the advent of increased processing power, improved video support, and multitasking operating systems in modern computer systems, it has become commonplace for computer applications to execute multiple tasks in graphical user interface (GUI) environments. Such a GUI, as distinct from a command-line interface, typically employs one or more graphical windows such as windows 2-4 depicted in FIG. 1 which provide the workspace for the end user. End users desirably interact with such workspaces by means of pointing devices, keyboards, and the like. More particularly, the user may interface with the computer system by interacting with various graphical images such as icons, cursors, etc. through keyboard entry and pointing device movements, etc. well known in the art.
In the course of development of such GUI environments and as a result of the improvements noted above, it soon became apparent that it would be desirable for several GUI applications represented by the windows of FIG. 1 to be capable of running simultaneously in a user's GUI desktop. A representative example of such an application and desktop, respectively, would be the "Motif" GUI application running in a GUI desktop known as "CDE", or the common desktop environment. Motif is a software package developed through the Open Systems Foundation (OSF), and the Common Desktop Environment (CDE) is a desktop environment distributed by the IBM Corporation, among others.
As is typical in such environments, the user is most interested at a given time only in a single active task or application (although other such tasks or applications might nevertheless also be executing concurrently). In accordance with conventional parlance, this notion of one of many tasks being active and of most interest is referred to as the task or associated window being in "focus". Naturally, because the user is most interested in this particular task, he or she desires that the computer systems provide the best response for this task as opposed to other tasks which may be also executing concurrently in a multitasking operating system.
Unfortunately, however, it is the nature of such multitasking systems that all windowed tasks executing therein (a representative example of which is the Unix operating system distributed by the Novell Corporation) operate with equal priority or access to the cpu(s) in he computer system.
Put differently, in accordance with prior art technique, all applications or tasks essentially were executed at the same CPU priority. One serious drawback with this was that if a highly CPU-intensive application was then iconified, e.g., defocused and pushed down in the stack, it nevertheless continued to consume its substantial share of the CPU processing ability, thereby essentially stealing processing time from a different currently focused window for which the user was desiring the most response.
As multitasking operating systems developed, the art progressed even further to the point that multiple workspaces, e.g., virtual screens, depicted in FIG. 2 are now provided, each such desktop space 6-9 or virtual screen being capable of executing an associated different entire suite of running GUI applications. In like manner to the previously described situation with respect to an individual task or application associated with a window, it became commonplace for present computer systems to cause each of such multiple workspaces (in addition to the individual windowed applications or tasks of FIG. 1) to execute with equal priority notwithstanding that a user was most interested in and desired the best response from a particular one of the workspaces and the application(s) or task(s) associated therewith. However, as in the case of individual applications or tasks being relegated to having the same priority regardless of which was "focused" at the time, this same drawback obtained in the case such multiple workspaces. In other words, notwithstanding that a particular such workspace such as workspace 6 of FIG. 2 was of primary interest at a given time to a user and thereby focused, the art nevertheless gave equal priority to the remaining workspaces 7-9, thereby consuming CPU resource that could better be directed to the workspace of current interest, e.g., workspace 6.
For all the foregoing reasons, a solution was highly desired and sought after which could remedy the foregoing situation and address the problem of non-focused applications, tasks, and workspaces consuming CPU resource at the expense of a particular application, task, or workspace which the user was interacting with and thereby in need of better performance for.